package cn.iocoder.an.module.mold.controller.admin.account.vo;


import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import jakarta.validation.constraints.*;
import java.time.LocalDateTime;

@Schema(description = "管理后台 - 模具台账新增/修改 Request VO")
@Data
public class AccountSaveReqVO {
    @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "11800")
    private Long id;

    @Schema(description = "模具名", requiredMode = Schema.RequiredMode.REQUIRED, example = "李四")
   // @NotEmpty(message = "模具名不能为空")
    private String name;

    @Schema(description = "编码", requiredMode = Schema.RequiredMode.REQUIRED)
   // @NotEmpty(message = "编码不能为空")
    private String code;

    @Schema(description = "图号id", requiredMode = Schema.RequiredMode.REQUIRED, example = "6468")
    private Long drawingNoId;

    @Schema(description = "模具类型id", requiredMode = Schema.RequiredMode.REQUIRED, example = "7480")
    private Long categoryId;

    @Schema(description = "客户名")
    private String customer;

    @Schema(description = "部门Id", example = "30795")
    private Long deptId;

    @Schema(description = "设备Id", example = "15975")
    private Long devId;

    @Schema(description = "总腔数", requiredMode = Schema.RequiredMode.REQUIRED)
    //@NotNull(message = "总腔数不能为空")
    private Integer totalCavity;

    @Schema(description = "可用腔数")
    private Integer availableCavity;

    @Schema(description = "寿命", requiredMode = Schema.RequiredMode.REQUIRED, example = "23601")
    @NotNull(message = "寿命不能为空")
    private Integer totalUsageCount;

    @Schema(description = "已使用", example = "26291")
    private Integer usedCount;

    @Schema(description = "预警次数", requiredMode = Schema.RequiredMode.REQUIRED, example = "24442")
    @NotNull(message = "预警次数不能为空")
    private Integer warningCount;

    @Schema(description = "延期次数", example = "31322")
    private Integer delayCount;

    @Schema(description = "仓库Id", example = "5197")
    private Long warehouseId;

    @Schema(description = "储位id", example = "10558")
    private Long storageId;

    @Schema(description = "bom类型", example = "22650")
    private  String bomCategoryId;

    @Schema(description = "工步")
    private Integer oprationStep;

    @Schema(description = "数量")
    private Integer quantity;

    @Schema(description = "保养类型id", example = "16858")
    private Long upkeepId;

    @Schema(description = "上次保养日期")
    private LocalDateTime lastUpkeepTime;

    @Schema(description = "下次保养日期")
    private LocalDateTime nextUpkeepTime;

    @Schema(description = "保养人id", example = "2384")
    private Long upkeeperId;

/*    @Schema(description = "保养日期")
    private LocalDateTime upkeepTime;*/

    @Schema(description = "复检类型id", example = "16858")
    private Long recheckId;

    @Schema(description = "上次复检日期")
    private LocalDateTime lastRecheckTime;

    @Schema(description = "下次复检日期")
    private LocalDateTime nextRecheckTime;

    @Schema(description = "复检人id", example = "11260")
    private Long recheckerId;

/*    @Schema(description = "复检日期")
    private LocalDateTime recheckTime;*/

    @Schema(description = "领用人ID", example = "11159")
    private Long borrowerId;

    @Schema(description = "领用时间")
    private LocalDateTime borrowTime;

    @Schema(description = "归还人ID", example = "20302")
    private Long returnerId;

    @Schema(description = "归还时间")
    private LocalDateTime returnTime;

    @Schema(description = "库存状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "in_stock")
    @NotEmpty(message = "库存状态不能为空")
    private String inventoryStatus;

  /*  @Schema(description = "使用状态", example = "inventoryStatus")
    @NotEmpty(message = "使用状态不能为空")
    private Integer usageStatus;

    @Schema(description = "维修状态", example = "inventoryStatus")
    private Integer repairStatus;

    @Schema(description = "保养状态", example = "inventoryStatus")
    private Integer upkeepStatus;

    @Schema(description = "复检状态", example = "inventoryStatus")
    private Integer recheckStatus;*/

    @Schema(description = "描述", example = "你说的对")
    private String description;

}